<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class captcha extends CI_Controller {

    function __construct() {
        parent::__construct();
    }

    function index() {
        $this->load->view('login/login_view'); // carga la vista login_view
    }

    /**
     * La funcion generarCaptcha genera una captcha, buscando las captchas guardadas en la base de datos 
     */
    function generarCaptcha() {
        $this->load->helper('captcha');
        $this->load->model('captcha/captcha_model');
        //Guarda una captcha que retorna la funcion, la cual busca una captcha al azar en la base de datos
        $datosCaptcha = $this->captcha_model->captchaAlAzar();
        //Propiedades que tendrá la captcha
        $val = array(
            'word' => $datosCaptcha['cap_enunciado'],
            'img_path' => './captchas/',
            'img_url' => 'http://localhost/clouli/captchas/',
            'font_path' => './path/to/fonts/texb.ttf',
            'img_width' => 100,
            'img_height' => 20,
            'expiration' => 720
        );
        //Crea la captcha y la guarda en como arreglo
        $captcha = create_captcha($val);
        $datos['captcha'] = $captcha;
        $datos['cap_id'] = $datosCaptcha['cap_id'];
        return $datos;
    }

    /**
     * La funcion validarDatos recibe vía POST la respuesta y la id de la captcha, para saber si la respuesta es válida o no 
     */
    function validarDatos($cap_id, $cap_respuesta) {
        $this->load->model('captcha/captcha_model');
        //Obtiene la palabra original de la captcha, enviando como parametro su id
        $cap_resultado = $this->captcha_model->obtenerResultado($cap_id);
        //Convierte todas las letras de las palabras (original y respuesta) a minusculas
        $cap_respuesta = strtolower($cap_respuesta);
        $cap_resultado = strtolower($cap_resultado);
        //Compara las palabras
        if ($cap_respuesta == $cap_resultado) {
            return true;
        } else {
            return false;
        }
    }

    function cargarAgregarCaptcha() {
        $this->load->view('captcha/agregarCaptcha_view');
    }

    /**
     * La funcion agregarCaptcha recibe un parametro que representa a una palabra de una captcha para guardarla en la base de datos
     * @param type $palabra 
     */
    function agregarCaptcha() {
        $palabra = $_POST['palabra'];
        $this->load->model('captcha/captcha_model');
        //guarda la palabra en la base de datos, utilizando el modelo captcha_Model
        $this->captcha_Model->agregarCaptcha($palabra);
    }

}

?>